package com.foreknow.demo12;

/**
 * @author shkstart
 * @create 2021-08-02 9:27
 */

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Map接口(集合)
 * 1.MapDemo<k,v>  k表示：键(key)  v:值(value)  注意：键不能重复  一个key对应一个value
 * 2.如何向Map容器添加元素？put(K key, V value)将指定的值与此映射中的指定键关联（可选操作）。
 * 3.获取元素？get(Object key)返回指定键所映射的值；如果此映射不包含该键的映射关系，则返回 null。
 * 4.实现类：HashMap(无序)   TreeMap(具有排序功能，根据key)
 *
 * 特点：可以根据key 快速定位到我们所需要的对象
 */

public class MapDemo {
    public static void main(String[] args) {
        //创建Map容器
        Map<Integer,String> maps=new HashMap<>();
        maps.put(1,"tom");
        maps.put(2,"zsw");
        maps.put(3,"cy");
        maps.put(4,"ld");
        //如何对Map进行遍历(Map本身不会继承Collection接口不提供迭代器  但Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的 Set 视图。 )
        //Map.Entry<K,V>是一个接口
        // K getKey()返回与此项对应的键。
        // V getValue()返回与此项对应的值。
        Set<Map.Entry<Integer, String>> entries = maps.entrySet();
        Iterator<Map.Entry<Integer, String>> iterator = entries.iterator();
        while (iterator.hasNext()){
            Map.Entry<Integer, String> next = iterator.next();
            Integer key = next.getKey();
            String value = next.getValue();
            System.out.println(key+"---------"+value);
        }

    }

}
